#ifndef DELAY_SCHEDULER_H
#define DELAY_SCHEDULER_H

#include "abstract_scheduler.h"

namespace scheduler
{
class DelayScheduler: public AbstractScheduler
{
public:
    explicit DelayScheduler(const std::string &name);
    explicit DelayScheduler(const std::string &name, int delay_mill_second);
    ~DelayScheduler() override;

    /**
     * @brief:  设置延时时间，单位：ms
     * @author: sherlock_lht
     */
    void setDelayTime(uint32_t milli_second);

    [[deprecated("delay scheduler cannot add task")]] bool appendTask(const task::AbstractTaskConstPtr &task) override;

    [[deprecated("delay scheduler cannot add task")]] bool appendScheduler(const AbstractSchedulerConstPtr &scheduler) override;
};
}

#endif //DELAY_SCHEDULER_H
